package com.byit.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.byit.domain.AppUser;
import com.byit.domain.SysUser;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wangx
 * @since 2019-01-03
 */
public interface IAppUserService extends IService<AppUser> {

    AppUser selectByPhone(String phone);

    AppUser selectByPhoneOrIdCode(String account);

    void updatePwdByPhone(Map<String, Object> params);

    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    JSONObject getUserInfo(Long userId);

    /**
     * 通过昵称查询用户
     * @param anonymous
     * @return
     */
    AppUser selectByAnonymous(String anonymous);

    /**
     * 更新用户昵称
     * @param userId
     * @param anonymous
     */
    void updateAnonymous(Long userId, String anonymous);

    /**
     * 更新用户签名
     * @param userId
     * @param signature
     */
    void updateSignature(Long userId, String signature);

    /**
     * 修改密码
     * @param params
     */
    void updatePassword(Map<String, Object> params);

    /**
     * 修改头像地址
     * @param params
     */
    void updateAvatar(Map<String, Object> params);

    /**
     * 修改手机号
     * @param params
     */
    void updateMobile(Map<String, Object> params);

    /**
     * 账户注销
     * @param params
     */
    void updateDelete(Map<String, Object> params);

    /**
     * 账户挂失
     * @param params
     */
    void updateLoss(Map<String, Object> params);

    /**
     * 账户解冻
     * @param params
     */
    void updateRestore(Map<String, Object> params);

    /**
     * web查询用户列表
     * @param params
     */
    Page<JSONObject> selectUserList(Page<SysUser> pageInfo, Map<String, Object> params);

    /**
     * 查询所有手机用户
     * @return
     */
    List<JSONObject> selectAllUserPhone();
}
